package mx.com.matersys.vacs.web;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;

import mx.com.matersys.vacs.domain.Estatus;
import mx.com.matersys.vacs.domain.Mensajes;
import mx.com.matersys.vacs.domain.Paciente;
import mx.com.matersys.vacs.utils.Constantes;

import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.roo.addon.web.mvc.controller.RooWebScaffold;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.util.UriUtils;
import org.springframework.web.util.WebUtils;

@RooWebScaffold(path = "DataString", formBackingObject = Mensajes.class)
@RequestMapping("/dataCreator")
@Controller
public class TestController {

	
	 @RequestMapping(value = "/createMessage",method = RequestMethod.GET)
	    public String onSubmit( @RequestParam(value = "idPaciente", required = true) Integer id, Model uiModel, HttpServletRequest httpServletRequest) {
     	StringBuffer sb = new StringBuffer("");
		 if (id != null ) {

	    		sb.append("|"+new Date().getTime()); // se agrega el tiempo
	    		sb.append("|"+id); // se agrega el identificador del paciente
	    		sb.append("|19.383759"); // se agrega latitud
	    		sb.append("|-99.173766"); // se agrega longitud
	    		sb.append("|38.5"); // se agrega temperatura
	    		sb.append("|1&2&3&4"); // se agregan los eventos
	    		sb.append("|1.4");   //x
	    		sb.append("|2.8");   //y
	    		sb.append("|4.2");   //z
	    		sb.append("|");
	    		getPoints(sb);
	    		sb.append("|");
	    		uiModel.addAttribute("mensaje", sb);
	    		
//	    		result.getModel().addAttribute("mensaje", sb);     
	        
	        }
	        return "redirect:/registrolecturas/guardaMensaje";
	 }
	

	/*
	@RequestMapping(value = "/createMessage", method = RequestMethod.GET)
	public String onSubmit(@RequestParam(value = "id", required = false) String idPaciente) {
		StringBuffer sb = new StringBuffer("");
		sb.append("#|"+new Date().getTime()); // se agrega el tiempo
		sb.append("|"+idPaciente); // se agrega el identificador del paciente
		sb.append("|19.383759"); // se agrega latitud
		sb.append("|-99.173766"); // se agrega longitud
		sb.append("|38.5"); // se agrega temperatura
		sb.append("|1&2&3&4"); // se agregan los eventos
		sb.append("|1.4");   //x
		sb.append("|2.8");   //y
		sb.append("|4.2");   //z
		sb.append("|");
		getPoints(sb);
		sb.append("|");
		
		
		return "redirect:/registrolecturas/registro?mensaje="+sb.toString();
	}
*/
	
	public void getPoints(StringBuffer sb) {
        try {
            BufferedReader br;
            FileReader f = new FileReader("C:\\bin\\brazalete\\mgh001.art");
            br = new BufferedReader(f);
            String cadena = br.readLine();  
            int counter = 0;
            int tasaMuestreo=200; //200 Hz
            int tiempoMin =1;
            
            while (cadena != null) {
                sb.append("&"+Double.parseDouble(cadena));
                if (counter++ > tasaMuestreo*tiempoMin*60) break;
                cadena = br.readLine();
            }
        } catch (Exception ex) {
            System.out.println("Error " + ex.getMessage());
        }

    }
	
	
}


